#pragma once
#include "Isoform.h"
#include <string>
#include <set>
#include <vector>
/*
This header provides utility functions for output isoforms.
*/

// print content of a vector for debug
void printIntVector(vector<int>& v);
// print a seqence in fasta format (wrap text too long a line)
int printFasta(ostream& out, const char* tag, const char* seq);
// TODO change this function to print universal seqeuences
int printSeqsInFasta(const char* ofilename, set<string> CDSs, string geneName, bool forwardStrand);
int printCDSs(const char* ofilename, set<string> CDSs, string geneName, bool forwardStrand);

int printIsoformsExons(ostream& out, vector<CTIsoform>& isoforms);
int printIsoformsExons(const char* ofileN, bool newFile, vector<CTIsoform>& isoforms);

void reportIsoform(ostream& out, CIsoformInfo& isoformInfo);
int printIsoforms(ostream& out, vector<CIsoformInfo>& isoforms);
int printIsoforms(const char* ofileN, bool newFile, vector<CIsoformInfo>& isoforms);
